package com.xyb.utils;

import org.springframework.stereotype.Component;

import java.io.UnsupportedEncodingException;
import java.util.Base64;

/**
 * 密码加密解密
 * 123456      ->       MTIzNDU2        ->      TVRJek5EVTI=
 * 111111      ->       MTExMTEx        ->      TVRFeE1URXg=
 */
@Component
public class Base64Utils {

    /**
     * 使用 base64 加密
     * @param str 需要加密的明文
     * @return 密文
     */
    public static String base64Encode(String str){
        Base64.Encoder encoder = Base64.getEncoder();
        byte[] bytes = null;
        try {
            bytes = encoder.encode(str.getBytes("UTF-8"));
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return new String(bytes);
    }

    /**
     * 使用 base64 解密
     * @param str Base64加密的密文
     * @return 明文
     */
    public static String base64Decode(String str){
        Base64.Decoder decoder = Base64.getDecoder();
        byte[] bytes = decoder.decode(str);
        return new String(bytes);
    }

    public static void main(String[] args) {
        String str = "MTIzNDU2";
        String s = base64Encode(str);
        System.out.println("明文加密后的密文: "  + s);
        String s1 = base64Decode(s);
        System.out.println("密文解密后的明文: " + s1);
    }
}
